Описание
Возвращает значение, определяющее возможность изменения объекта
доступа к данным (DAO).
Значение
Возвращаемое значение является выражением типа Boolean.
Значение True указывает, что допускается изменение или обновление
объекта. (Объекты Recordset типа статического набора записей и
статического набора записей с последовательным доступом всегда возвращают
значение False).
Замечания
В зависимости от вида объекта, если свойство Updatable
имеет значение True, верным является следующее утверждение.
Database Допускается изменение объекта. QueryDef Допускается изменение описания запроса. Recordset Допускается обновление записей. TableDef Допускается изменение описания таблицы.
Свойство Updatable всегда имеет значение True для только что
созданного объекта TableDef и значение False для присоединенного
объекта TableDef. Новый объект TableDef можно добавить в базу
данных только в том случае, если текущий пользователь имеет разрешение на запись
для базы данных.
Многие типы объектов могут содержать поля, значения которых
нельзя обновить. Например, можно создать объект Recordset типа
динамического набора записей, в котором изменения допускаются только для
некоторых из полей. Неизменяемые поля могут содержать постоянные данные или
данные с автоприращением. Кроме того, динамический набор записей может быть
создан на основе запроса, объединяющего обновляемые и неизменяемые
таблицы.
Если объект содержит поля, доступные только для чтения, свойство
Updatable имеет значение False. Если одно или несколько полей
являются обновляемыми, это свойство имеет значение True. Пользователь
имеет возможность изменять значения только обновляемых полей. При попытке
присвоить новое значение полю, доступному только для чтения, возникает
перехватываемая ошибка.
Свойство Updatable объекта QueryDef
получает значение True, если допускается обновление определения запроса,
даже в том случае, когда результирующий объект Recordset является
необновляемым.
Поскольку обновляемый объект может содержать отдельные поля,
доступные только для чтения, перед внесением изменений в записи объекта
Recordset следует проверить значение свойства DataUpdatable
каждого из полей семейства Fields объекта Recordset.
Пример
Следующая программа демонстрирует применение свойства
Updatable к базе данных, четырем типам объектов Recordset, объекту
TableDef и объекту QueryDef.
Sub UpdatableX() Dim dbsNorthwind As Database Dim rstEmployees As Recordset Set dbsNorthwind = OpenDatabase("Борей.mdb") With dbsNorthwind Debug.Print .Name Debug.Print " Updatable = " & .Updatable ' По умолчанию задается константа dbOpenTable. Set rstEmployees = .OpenRecordset("Сотрудники") Debug.Print "Табличный объект Recordset для таблицы 'Сотрудники'" Debug.Print " Updatable = " & rstEmployees.Updatable rstEmployees.Close Set rstEmployees = .OpenRecordset("Сотрудники", dbOpenDynaset) Debug.Print "Динамический набор записей для таблицы 'Сотрудники'" Debug.Print " Updatable = " & rstEmployees.Updatable rstEmployees.Close Set rstEmployees = .OpenRecordset("Сотрудники", dbOpenSnapshot) Debug.Print "Динамический набор записей для таблицы 'Сотрудники'" Debug.Print " Updatable = " & rstEmployees.Updatable rstEmployees.Close Set rstEmployees = .OpenRecordset("Сотрудники", dbOpenForwardOnly) Debug.Print " Набор с последовательным доступом для таблицы 'Сотрудники'" Debug.Print " Updatable = " & rstEmployees.Updatable rstEmployees.Close Debug.Print "'" & .TableDefs(0).Name & "' TableDef" Debug.Print " Updatable = " & .TableDefs(0).Updatable Debug.Print "'" & .QueryDefs(0).Name & "' QueryDef" Debug.Print " Updatable = " & .QueryDefs(0).Updatable .Close End With End Sub